import tkinter as tk


class Page:
    def __init__(self):
        self.window = tk.Tk()
        self.window.title("main")
        self.window.geometry("300x200")
        self.lf()
        self.data = Data()
        self.window.mainloop()

    def lf(self):
        lf = tk.LabelFrame(self.window)
        lf.pack()

        b = tk.Button(lf, text="oh!no!", command=self.bubu)
        b.grid(row=1, column=1)

        e = tk.Entry(lf, width=30)
        e.grid(row=2, column=1)

        # 假设这是页面运行时，手工填入entry的。目标是取出这个值，用于在class Data中做进一步运算
        e.insert("end", "help")

        # 声明后，另一类中即可用
        global kkk
        kkk = e.get()
        print('这是Page中的打印：{}'.format(kkk))

    def bubu(self):
        self.data.ouch()


class Data:  
    def __init__(self):
        self.guy = "sam"
        self.savage = "alien"
        print('这是Data中的打印：{}'.format(kkk))

    def ouch(self):  # 需要独立，不写在class page中
        print("{}被{}追着跑，所以大声叫{}".format(self.guy, self.savage, kkk))
        # 【sam被alien追着跑，所以大声叫help】是最终要打印的句子
        # help取自class Page中输入的信息


Page()
